﻿using System;

namespace FITClub.Episode1.Controller
{
    public interface IActionsController
    {
        double PowerUpTime { get; set; }

        ActionsStatus Status { get; }

        void ProcessAttack(Microsoft.Xna.Framework.GameTime time);

        void ProcessBlock(Microsoft.Xna.Framework.GameTime time);

        void ProcessControlSwitch();

        void ProcessDuck(Microsoft.Xna.Framework.GameTime time);

        void ProcessIdle(Microsoft.Xna.Framework.GameTime time);

        void ProcessInvisibility();

        void ProcessJump(Microsoft.Xna.Framework.GameTime time);

        void ProcessMovement(Microsoft.Xna.Framework.GameTime time);

        void ProcessSlowSpeed();

        void ProcessSuperJump();

        void ProcessSuperPunch();

        void ProcessSuperSpeed();

        void ResetEffects();

        void Update(Microsoft.Xna.Framework.GameTime time);

        bool WithinJumpAngle();

        void SetPowerUp(Levels.PowerUpType type);
    }
}